﻿/*
SINACOR - BMF&Bovespa
Arquivo: IMensagemErroRecebida.cs
Criado em: 27-mai-2010 14:09:36
Arquiteto Responsável: p-dmartinelli
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using System.ComponentModel;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Security.Services;
using Sinacor.Infra.Common.Exceptions.FaultContracts;

namespace Sinacor.Servico.Bovespa.Alocacao.Service.ServiceContract 
{
	[ExceptionShielding]
	[ServiceContract(Namespace = "http://www.bovespa.com.br/Sinacor.Servico.Bovespa.Alocacao.Service.ServiceContract", SessionMode = SessionMode.Allowed, Name = "IMensagemErroRecebida")]
	public interface IMensagemErroRecebida 
	{
		/// <summary>
		/// Pesquisa de Inconsistências de Mensagens Recebidas
		/// Transacional: Não
		/// </summary>
		/// <param name="filtro"></param>
        [OperationLog]
        [FaultContract(typeof(BusinessFault))]
		[FaultContract(typeof(ValidationFault))]
		[FaultContract(typeof(GeneralFault))]
		[FaultContract(typeof(InvalidSessionFault))]
		[FaultContract(typeof(LicensingFault))]
		[FaultContract(typeof(AccessIsDeniedFault))]
		[OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, Action = "ConsultarMensagemErroRecebida")]
		List<DataContract.Response.MensagemErroRecebidaResponse> ConsultarMensagemErroRecebida(DataContract.Request.FiltroMensagemErroRecebidaRequest filtro);

		/// <summary>
		/// Acerta as mensagens de erro de negócios ETF e Recompra
		/// Transacional: Não
		/// </summary>
        [OperationLog]
        [FaultContract(typeof(BusinessFault))]
		[FaultContract(typeof(ValidationFault))]
		[FaultContract(typeof(GeneralFault))]
		[FaultContract(typeof(InvalidSessionFault))]
		[FaultContract(typeof(LicensingFault))]
		[FaultContract(typeof(AccessIsDeniedFault))]
		[OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, Action = "ProcessarAcerto")]
		void ProcessarAcerto();
	}

}